Methods and apparatuses for operating a portable device based on an accelerometer

ABSTRACT

Methods and apparatuses for operating a portable device based on an accelerometer are described. According to one embodiment of the invention, an accelerometer attached to a portable device detects a movement of the portable device. In response, a machine executable code is executed within the portable device to perform one or more predetermined user configurable operations. Other methods and apparatuses are also described.

RELATED APPLICATIONS

This application is a divisional of co-pending U.S. patent applicationSer. No. 10/986,730, filed on Nov. 12, 2004, which is acontinuation-in-part (CIP) of U.S. patent application Ser. No.10/890,856, filed on Jul. 13, 2004, now U.S. Pat. No. 7,307,228, whichis a continuation of U.S. patent application Ser. No. 10/348,465, filedon Jan. 21, 2003, now U.S. Pat. No. 6,768,066, which is a divisionalapplication of U.S. patent application Ser. No. 09/678,541, filed onOct. 2, 2000, now U.S. Pat. No. 6,520,013.

This application is also a continuation-in-part (CIP) of co-pending U.S.patent application Ser. No. 10/791,495, filed Mar. 1, 2004. Theabove-identified U.S. patent applications are hereby incorporated byreference.

FIELD OF THE INVENTION

The present invention relates generally to a portable device. Moreparticularly, this invention relates to operating a portable deviceusing an accelerometer of the portable device.

BACKGROUND OF THE INVENTION

Accelerometers are devices widely used for applications as diverse asvibration monitoring, appliance control, joysticks, industrial processcontrol, space launches, satellite control, and many others. Forexample, an accelerometer has been used in a vehicle as sensor to detecta variety of operating conditions while the vehicle is moving.

As computers have been getting more popular, an accelerometer has beenused in a computer to sense a sudden move, such as a free fall, of acomputer. A typical application of an accelerometer in a computer is toprotect a read/write head of a hard drive. However, there has been alack of applications that an accelerometer is used in conjunction withsoftware executable within a computer.

SUMMARY OF THE INVENTION

Methods and apparatuses for operating a portable device based on anaccelerometer are described. According to one embodiment of theinvention, an accelerometer attached to a portable device detects amovement of the portable device. In response, a machine executable codeis executed to perform a predetermined user configurable operation.

According to one embodiment of the invention, an accelerometer of aportable device may constantly or periodically monitor the movement ofthe portable device. As a result, an orientation of the portable deviceprior to the movement and after the movement may be determined based onthe movement data provided by the accelerometer attached to the portabledevice.

According to another embodiment of the invention, an accelerometer maybe used to detect a movement of a portable device as a way to triggerwhether a page of document or image may be displayed.

According to another embodiment of the invention, an accelerometer maybe used in a navigation application. For example, a portable devicehaving an accelerometer attached therein may be used as a navigationtool to navigate a relatively large object or document that normallycannot be displayed entirely at once within a display of the portabledevice.

According to another embodiment of the invention, an accelerometer maybe used in a gaming application, where the accelerometer may be used todetect a scene change during a video game running within a portabledevice.

According to another embodiment of the invention, an accelerometer maybe used to detect a movement of a portable device and an orientation ofthe portable device may be determined based on the movement dataprovided by the accelerometer. Thereafter, one or more interfaces of theportable device may be activated or deactivated based on the determinedorientation after the movement.

According to another embodiment of the invention, an accelerometer maybe used to detect and determine activities of a user (e.g., joggling)with a portable device having the accelerometer attached therein.

According to another embodiment of the invention, an accelerometer maybe used to determine whether a portable device is moving (e.g., carriedby a user) and the portable device should be put in a proper operatingstate (e.g., a sleep or hibernated mode).

According to another embodiment of the invention, an accelerometer maybe used to detect whether a portable device is moved according tocertain directions, in order to determine whether a password is enteredcorrectly.

According to another embodiment of the invention, an accelerometer maybe used to detect and record a sequence of movements of a portabledevice, where the recorded movement data may be used to recreate themoving history subsequently (e.g., off line).

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings in which likereferences indicate similar elements.

FIG. 1 is a block diagram illustrating an exemplary architecture of aportable device according to one embodiment of the invention.

FIG. 2 is a flow diagram illustrating an exemplary process for operatinga portable device in response to an event generated by an accelerometer,according to one embodiment of the invention.

FIGS. 3A and 3B are diagrams illustrating an exemplary application thatan accelerometer may be utilized according to one embodiment of theinvention.

FIG. 4 is a flow diagram illustrating an exemplary processor forreorienting a displayed document based on an accelerometer, according toone embodiment of the invention.

FIGS. 5A and 5B are diagrams illustrating exemplary movements of aportable device that may be used to trigger displaying a page ofdocument, according to certain embodiments of the invention.

FIG. 6 is a flow diagram illustrating an exemplary process forpresenting a document based on an accelerometer according to oneembodiment of the invention.

FIGS. 7A and 7B are diagrams illustrating an exemplary navigationapplication based on an accelerometer according to one embodiment of theinvention.

FIG. 8 is a flow diagram illustrating an exemplary process fornavigating an image based on an accelerometer, according to oneembodiment of the invention.

FIGS. 9A and 9B are diagrams illustrating an exemplary gamingapplication based on an accelerometer, according to one embodiment ofthe invention.

FIGS. 10A and 10B are diagrams illustrating an exemplary gamingapplication based on an accelerometer, according to another embodimentof the invention.

FIG. 11 is a flow diagram illustrating an exemplary process for a gamingapplication based on an accelerometer, according to one embodiment ofthe invention.

FIGS. 12A and 12B are diagrams illustrating an exemplary mechanism foractivating/deactivating interfaces of a portable device based on anaccelerometer, according to one embodiment of the invention.

FIG. 13 is a flow diagram illustrating an exemplary process foroperating interfaces of a portable device based on an accelerometer,according to one embodiment of the invention.

FIGS. 14A and 14B are diagrams illustrating an exemplary mechanism foractivating/deactivating multimedia interfaces of a portable device usingan accelerometer, according to one embodiment of the invention.

FIG. 15 is a flow diagram illustrating an exemplary process forreconfiguring multimedia interfaces based on an accelerometer, accordingto one embodiment of the invention.

FIG. 16 is a flow diagram illustrating an exemplary process for playingmultimedia contents based on an accelerometer, according to oneembodiment of the invention.

FIG. 17 is a flow diagram illustrating an exemplary process for powermanagement of a portable device according to one embodiment of theinvention.

FIG. 18 is a flow diagram illustrating an exemplary process forprocessing password according to one embodiment of the invention.

FIG. 19 is flow diagram illustrating an exemplary process for recreatinga trail of movements using an accelerometer, according to one embodimentof the invention.

FIG. 20 is a block diagram illustrating an exemplary portable devicehaving an accelerometer according to one embodiment of the invention.

FIG. 21 is a block diagram of a digital processing system which may beused with one embodiment of the invention.

FIG. 22 is a flow diagram illustrating an exemplary process for motioncompensation using an accelerometer according to one embodiment of theinvention.

FIG. 23 is flow diagram illustrating an exemplary process for detectingan impulse using an accelerometer, according to one embodiment of theinvention.

FIG. 24 is flow diagram illustrating an exemplary process for operatinga component of a portable device using an accelerometer, according toone embodiment of the invention.

DETAILED DESCRIPTION

Methods and apparatuses for operating a portable device based on anaccelerometer are described. According to certain embodiments, anaccelerometer has been used within a portable device, such as, forexample, a laptop computer, a tablet PC, a personal digital assistant(PDA), a cellular phone, and a digital multimedia player, etc. Once theaccelerometer detects a movement of the portable device, a movingdirection, also referred to as a moving vector or an accelerationvector, is determined based on the movement data provided by theaccelerometer. The moving direction and/or the movement data may beprovided to a software component (e.g., application software) executedwithin the portable device. In response to the detection of the movementof the portable device, the corresponding software component performsone or more predetermined user configurable actions, such as, forexample, advancing a page of document, etc., based on the movingdirection and/or movement data provided by the accelerometer.

In the following description, numerous details are set forth to providea more thorough explanation of the present invention. It will beapparent, however, to one skilled in the art, that the present inventionmay be practiced without these specific details. In other instances,well-known structures and devices are shown in block diagram form,rather than in detail, in order to avoid obscuring the presentinvention.

Some portions of the detailed descriptions which follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present invention also relates to apparatus for performing theoperations herein. This apparatus may be specially constructed for therequired purposes, or it may comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a computerreadable storage medium, such as, but is not limited to, any type ofdisk including floppy disks, optical disks, CD-ROMs, andmagnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), erasable programmable ROMs (EPROMs), electricallyerasable programmable ROMs (EEPROMs), magnetic or optical cards, or anytype of media suitable for storing electronic instructions, and eachcoupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these systems will appear from the description below.In addition, the present invention is not described with reference toany particular programming language. It will be appreciated that avariety of programming languages may be used to implement the teachingsof the invention as described herein.

A machine-readable medium includes any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputer). For example, a machine-readable medium includes read onlymemory (“ROM”); random access memory (“RAM”); magnetic disk storagemedia; optical storage media; flash memory devices; electrical, optical,acoustical or other form of propagated signals (e.g., carrier waves,infrared signals, digital signals, etc.); etc.

Overview

FIG. 1 is a block diagram illustrating an exemplary architecture of aportable device according to one embodiment of the invention. In oneembodiment, the exemplary system 100 includes, but is not limited to, aprocessor, a memory coupled to the processor, the memory havinginstructions stored therein, and an accelerometer coupled to theprocessor and the memory to detect movement of the portable device,where the processor executes instructions from the memory to perform oneor more predetermined user configurable actions in response to thedetection of the movement of the portable device. In an alternativeembodiment, the exemplary system 100 further includes a controllercoupled to the accelerometer to determine a direction of the movementbased on movement data provided by the accelerometer and to compare thedetermined direction of the movement with a predetermined direction todetermine whether the determined direction relatively matches thepredetermined direction in order to execute the instructions.

Referring to FIG. 1, according to one embodiment, exemplary system 100includes one or more accelerometers 101, one or more controllers 102coupled to the accelerometers 101, a motion related firmware 103, motionsoftware component 104, and one or more application software 105-107.The accelerometer 101 may be attached to the portable device, such as,for example, a motherboard of the portable device. Alternatively, theaccelerometer 101 may be integrated with another component of theportable device. For example, the accelerometer 101 may be integratedwith a chipset of the portable device.

According to one embodiment, the accelerometer 101 is able to detect amovement including an acceleration and/or de-acceleration of theportable device. The accelerometer 101 may generate movement data formultiple dimensions, which may be used to determine a moving directionof the portable device. For example, the accelerometer 101 may generateX, Y, and Z axis acceleration information when the accelerometer 101detects that the portable device is moved. In one embodiment, theaccelerometer 101 may be implemented as those described in U.S. Pat. No.6,520,013, which is assigned to a common assignee of the presentapplication. Alternatively, the accelerometer 101 may be implementedusing a variety of accelerometers commercially available. For example,the accelerometer 101 may be a KGF01 accelerometer from Kionix or anADXL311 accelerometer from Analog Devices.

In addition, the exemplary system 100 includes one or more controllers102 coupled to the accelerometer(s) 101. The controller 102 may be usedto calculate a moving direction, also referred to as moving vector, ofthe portable device. The moving vector may be determined according toone or more predetermined formulas based on the movement data (e.g., X,Y, and Z axis moving information) provided by the accelerometer 101.Certain embodiments of calculations of a moving vector will be describedin details further below.

According to one embodiment, the controller 102 is responsible formonitoring one or more outputs of the accelerometer 101 andcommunicating with other components, such as, for example, a chipset(e.g., a memory controller or a north bridge) and/or a microprocessor(e.g., a CPU), of the portable device. The controller 102 may beimplemented using a variety of microcontrollers commercially available.For example, controller 102 may be a PIC 16F818 microcontroller fromMicrochip. Controller 102 may be integrated with the accelerometer 101.Alternatively, controller 102 may be integrated with other components,such as, for example, a chipset or a microprocessor, of the portabledevice.

In one embodiment, the controller 102 may communicate with othercomponents via a bus, such as, for example, an I2C (inter-IC) bus, andan interrupt line. In response to the movement data, the controller 102generates an interrupt, for example, a hardware interrupt, a softwareinterrupt, or a combination of both, via an interrupt line to othercomponents, such as, firmware 103, to notify them of such a movement. Inaddition, the controller 102 may further calculate a moving vector basedon the movement data provided by the accelerometer 101. Further detailedinformation concerning the communications between the controller 102 andother components of the portable device will be described further below.

Referring back to FIG. 1, motion firmware 103 includes one or morepieces of machine executable code, which may be embedded within one ormore hardware components, such as, for example, controller 102 or achipset (e.g., a part of BIOS, also referred to as basic input/outputsystem), of the portable device. In one embodiment, motion firmware 103may be stored in a read-only memory (ROM) (e.g., a flash memory) ofcontroller 102. However, the machine executable code of motion firmware103 may be upgraded by uploading a newer version into the memory, forexample, using a flash utility. The firmware 103 may be responsible fordetecting any events that are generated in response to the movementdetection. According to one embodiment, the firmware 103 provides aprimary communications mechanism between controller 102 and othercomponents, such as, for example, an operating system (OS), of theportable device.

Motion software 104 may be responsible for communicating between themotion firmware 103 and the rest of software components, such asapplication software components 105-107, as well as the operatingsystem. In one embodiment, the motion software 104 may be implemented asa part of an operating system, such as, for example, a kernel componentor a device driver, etc. The operating system may be implemented using avariety of operating systems commercially available. For example, theoperating system may be a Mac OS from Apple Computer. Alternatively, theoperating system may be a Windows operating system from Microsoft. Otheroperating systems, such as, for example, a Unix, a Linux, an embeddedoperating system (e.g., a Palm OS), or a real-time operating system, mayalso be implemented.

According to one embodiment, in response to the motion detection event,which may be notified by the motion firmware 103, the motion softwarecomponent 104 may communicate the event to one or more applicationsoftware 105-107. In response to the detection, the application software105-107 may perform certain operations. The applications 105-107 may bea variety of different applications, such as, for example, a browser, aword processor, a slide presentation, etc. Certain embodiments of theoperations performed by the applications 105-107 will be described indetails further below.

FIG. 2 is a flow diagram illustrating an exemplary process for operatinga portable device in response to an event generated by an accelerometer,according to one embodiment of the invention. Exemplary process 200 maybe performed by a processing logic that may comprise hardware(circuitry, dedicated logic, etc.), software (such as is run on adedicated machine), or a combination of both. In one embodiment,exemplary process 200 includes, but is not limited to, detectingmovement of a portable device using an accelerometer attached to theportable device, and executing machine-executable code to perform one ormore predetermined user configurable actions in response to thedetection of the movement of the portable device.

Referring to FIG. 2, at block 201, a movement of a portable device, suchas, for example, a laptop computer or a tablet PC, is detected using anaccelerometer (e.g., accelerometer 101 of FIG. 1) attached to theportable device. In one embodiment, in response to the detection, theaccelerometer may generate movement data for multiple dimensions (e.g.,X, Y, and Z axes). In response to the detection, at block 202, adirection of the movement is determined based on the movement dataprovided by the accelerometer. In one embodiment, the direction of themovement is determined by a controller (e.g., controller 102 of FIG. 1).In response to the determined direction, at block 203, one or moremachine executable code (e.g., application software) may be executed toperform one or more predetermined user configurable actions, such as,for example, advancing a Web page, etc. Other operations may also beperformed.

Determining Orientation Based on an Accelerometer

According to one embodiment of the invention, an accelerometer of aportable device may constantly or periodically monitor the movement ofthe portable device. As a result, an orientation of the portable deviceprior to the movement and after the movement may be determined based onthe movement data provided by the accelerometer attached to the portabledevice.

FIGS. 3A and 3B are diagrams illustrating an exemplary application thatan accelerometer may be utilized according to one embodiment of theinvention. In this embodiment, and throughout the application, a tabletdevice is used as an example of a portable device. But it is not solimited. It will be appreciated that other portable devices, such as, alaptop computer, a personal digital assistant (PDA), a personalcommunicator (e.g., a blackberry from Research In Motion), a cellularphone, or a multimedia player (e.g., an MP3 player), etc., may also beutilized.

Referring to FIGS. 3A and 3B, initially according to one embodiment, theportable device is in an orientation 301 having a page of document 303displayed within a display of the portable device. In the orientation301, the document page 303 is displayed properly from a viewpoint of auser facing the display given the orientation 301, which may be detectedand determined by an accelerometer and a controller associated with it,periodically or constantly.

When the portable device is moved, for example, according to a movingdirection 304, which ends up with an orientation 302, the accelerometer(accelerometer 101 of FIG. 1) may detect such a movement. In response tothe detection, the controller (e.g., controller 102 of FIG. 1) maydetermine a moving direction based on the movement data provided by theaccelerometer and notify the appropriate components of the portabledevice, such as, firmware 103, motion software 104, and/or applications105-107 of FIG. 1. Such a notification may be performed via an interruptor by pulling one or more registers of the controller and/oraccelerometer. In addition, the controller may further determine anorientation of the portable device after the movement.

In response to the notification, according to one embodiment, theorientation of the document page 303 may be adjusted in accordance withthe determined orientation after the movement, as shown in FIG. 3B. Inone embodiment, the orientation of the displayed document page may beadjusted after the movement to be relatively identical to theorientation prior to the movement. As a result, even though theorientation of the portable device has changed, the orientation of thedisplayed document page remains relatively the same, particularly, in aviewpoint of a user facing the display of the portable device.

In this embodiment, the adjustment of the orientation of the documentpage 303 may be performed by a display driver (e.g., a video driver)that transmits the displayed data (e.g., the document page) to a displayof the portable device. Alternatively, the adjustment of the orientationmay be performed by the original application software (e.g.,applications 105-107 of FIG. 1) that provides the document page 303(e.g., a browser that provides a Web page or a word processor thatprovides a page of a document). Note that the moving direction 304 shownin FIGS. 3A and 3B is for illustration purposes only. Other movingdirections, such as those or a combination of those shown in FIG. 5A,may also be implemented. Further, as shown in FIGS. 3A and 3B, theportable device is rotated left in 90 degrees for the illustrationpurposes only. The portable device may be rotated, moved in parallel, ora combination of both or multiple dimensions and in any moving stepsizes.

FIG. 4 is a flow diagram illustrating an exemplary processor forreorienting a displayed document based on an accelerometer, according toone embodiment of the invention. Exemplary process 400 may be performedby a processing logic that may comprise hardware (circuitry, dedicatedlogic, etc.), software (such as is run on a dedicated machine), or acombination of both. In one embodiment, exemplary process 400 includes,but is not limited to, detecting movement of a portable device using anaccelerometer attached to the portable device, determining anorientation of the portable device after the movement based on movementdata provided by the accelerometer, and displaying an image on a displayof the portable device according to an orientation that is relativelyidentical to an orientation of the image prior to the movement.

Referring to FIG. 4, at block 401, a movement of a portable device froma first orientation is detected using an accelerometer attached to theportable device. In response, at block 402, a moving direction isdetermined based on movement data, such as X, Y, and Z axis information,provided by the accelerometer. In one embodiment, the determination maybe performed by a controller coupled to the accelerometer (e.g.,controller 102 of FIG. 1). The moving direction may be determinedaccording to one or more predetermined formulas. At block 403, after themovement, a second orientation of the portable device may be determinedbased on the movement data provided by the accelerometer. At block 404,an orientation of a displayed document page may be adjusted based on thedetermined second orientation. In one embodiment, the orientation of thedisplayed document page may be adjusted such that the adjustedorientation of the document page is relatively identical to theorientation prior to the movement, particularly, from a viewpoint of auser. Other operations may also be performed.

Displaying Different Pages of a Document Based on an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used to detect a movement of a portable device as a way to triggerwhether a page of document or image may be displayed. For example, whena portable device is moved (e.g., a sudden move) towards a predetermineddirection, the accelerometer may detect such a movement and applicationsoftware may display a particular page in response to the detection ofthe movement.

FIG. 5A is a diagram illustrating exemplary movements of a portabledevice that may be used to trigger displaying a page of document,according to one embodiment of the invention. For example, referring toFIG. 5A, a first page of document is displayed on a display 507 of theportable device 500. When the portable device 500 is moved in certaindirections, an accelerometer (e.g., accelerometer 101 of FIG. 1)attached to the portable device 500 may detect such a movement. Inresponse to the detection, the accelerometer may notify, via theassociated controller, firmware, and/or OS, other components such asapplication software, particularly the one providing the first page ofdocument being displayed.

In a particular embodiment, the accelerometer may notify a controller(e.g., controller 102 of FIG. 1) including providing the movement data(e.g., X, Y, and Z axes). The controller and/or the firmware maycalculate the moving vector of the movement based on the movement dataprovided by the accelerometer. Thereafter, the controller may signalother components, such as motion software component (e.g., motionsoftware 104) and/or the operating system. The motion software and/orthe operating system may compare the moving vector with a predetermineddirection to determine whether the moving vector relatively matches thepredetermined direction, for example, based on a predeterminedthreshold.

In one embodiment, the predetermined direction and the threshold (e.g.,sensitivity) associated with the predetermined direction may be userconfigurable via a user interface. Such a sensitivity may be configuredbased on different profiles associated with the portable device at agiven time and place. For example, the sensitivity of the portabledevice may be different when it is at a home/office versus on a movingplatform (e.g., a car, a train, a ship or an airplane, etc.) In afurther embodiment, the portable device may include a mechanism tointelligently filter out some “noisy” movement background.

If the moving vector relatively matches the predetermined direction, theassociated application software may be notified. In response, theassociated application software may perform certain operations,including displaying a second page different than the first page on thedisplay.

In one embodiment, the second page of the document may be a next page ora previous page of the document. The document may be a word documentproduced by a word processor, such as, a word processor from MicrosoftOffice. Alternatively, the document may be a Web page presented by abrowser, such as, Internet Explorer from Microsoft or a Netscapecommunicator from Netscape Communications. Further, the document may bea slide presentation, for example, presented by PowerPoint of Microsoftor by Keynote of Apple Computer.

Referring to FIG. 5A, the moving directions may include a movingdirection that is parallel with a surface of the portable device (e.g.,a display surface 507 of the portable device) as shown as directions 501and 502. Alternatively, the moving directions may include a rotation ofthe portable device with respect to an axis parallel with an edge (e.g.,edges 505 and 506) of the portable device, as shown as directions 503and 504. Furthermore, the moving directions of the portable device maybe a combination of the above directions. For example, the movement maybe multiple dimension spin with respect to a corner of the portabledevice 500. Other types of the movements may be utilized.

FIG. 5B is a diagram illustrating an exemplary movement of a portabledevice that may be used to trigger displaying a page of document,according to an alternative embodiment of the invention. In thisembodiment, the portable device 551 may be placed on a supportingsurface 552. In addition, the application software running within theportable device 551 may be configured as in a “default” mode. When asudden force is applied to the supporting surface 552, the sudden forcecauses an oscillation of the supporting surface 552. The sudden forcemay be provided by a user tabbing the supporting surface.

In response to the oscillation of the supporting surface 552, anaccelerometer attached to the portable device 551 may detect such anoscillation. In response to the detection, the accelerometer may notify,via the firmware and/or the controller, etc., the associated applicationsoftware. In response, the application software may display a next page,a previous page, or a specific page of the document, which may be userconfigurable via a user interface. It is particularly useful when theportable device is placed on a desk and hooked up with a presentationprojector. A user who is doing the presentation may simply tab on thedesk to advance a next page of presentation without having to press akey of a keyboard (e.g., the “Enter” key or the space bar) or a mouse ofthe portable device.

FIG. 6 is a flow diagram illustrating an exemplary process forpresenting a document based on an accelerometer according to oneembodiment of the invention. Exemplary process 600 may be performed by aprocessing logic that may comprise hardware (circuitry, dedicated logic,etc.), software (such as is run on a dedicated machine), or acombination of both. In one embodiment, exemplary process 600 includes,but is not limited to, displaying a first page of a document on adisplay of a portable device, detecting movement of the portable deviceusing an accelerometer attached to the portable device, and displaying asecond page of the document different than the first page in response tothe detection of the movement.

Referring to FIG. 6, at block 601, a movement of a portable device isdetected using an accelerometer attached to the portable device. Inresponse to the detection, at block 602, a moving direction of themovement is determined based on the movement data provided by theaccelerometer, for example, X, Y, Z, axis information. In oneembodiment, the moving direction may be determined by the associatedcontroller and/or the associated firmware. At block 603, it isdetermined whether the moving direction relatively matches apredetermined direction. If so, at block 604, associated applicationsoftware being executed within the portable device having a first pageof a document displayed is notified. In response, at block 605, theapplication software displays a second page of the document differentthan the first page. Other operations may also be performed.

Navigation Applications Based on an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used in a navigation application. For example, a portable devicehaving an accelerometer attached therein may be used as a navigationtool to navigate a relatively large object or document that normallycannot be displayed entirely at once within a display of the portabledevice.

FIGS. 7A and 7B are diagrams illustrating an exemplary navigationapplication based on an accelerometer according to one embodiment of theinvention. In this embodiment, a portion of a map is displayed initiallyas shown in FIG. 7A. The map normally cannot be displayed entirely as awhole within a display of the portable device 700 with a certain detaillevel. For example, when a user “zoom in” on a map, only a portion ofthe map can be displayed within the display. As the user navigatesthroughout a first portion of the map, the user may wish to graduallynavigate into a second portion of the map from the first portion.

According to one embodiment, a user holding the portable device 700 maymove the portable device 700 towards a direction that the user wishes tonavigate, for example, in accordance with direction 703 (e.g., northeastdirection as an example). In response to the movement, an accelerometerattached to the portable device 700 may detect such a movement. Theaccelerometer may provide movement data (e.g., X, Y, and Z, axisinformation) to a controller and/or firmware of the portable device. Theassociated controller and/or firmware may calculate a moving directionand/or moving distance based on the movement data provided by theaccelerometer, using one or more predetermined formulas. Thereafter, thecontroller and/or firmware may communicate the moving direction to theassociated application software that is currently providing the map.

In response, the application software may determine the second portionof the map based on the moving direction, moving distance, and/or movingacceleration data provided by the controller and/or firmware. Theapplication software then displays the second portion accordingly. As aresult, the user does not have to press and/or click a button in orderto navigate other portions of the map. Note that the moving direction703 is shown for the illustration purposes only. Any other directionsmay be applied.

In one embodiment, the second portion of the map may be displayed via atransition from the first portion. That is, multiple intermediateportions between the first and second portions may be sequentiallydisplayed to form a transition from the first portion to the secondportion. As a result, the second portion “comes into” the display of theportable device gradually. According to one embodiment, the transitionfrom the first portion to the second portion is displayed as if the usermoves the portable device on a relatively large map, while the mapremains steady. In this embodiment, the transition is displayed as ifthe user holds the portable device as a magnifier to navigate a largemap, a large newspaper, or a Web page, etc.

According to a further embodiment, certain movements may be used to“zoom in” or “zoom out” on the displayed page. For example, while amovement parallel to a surface (e.g., a display surface) of the portabledevice may be used to navigate different portions of the displayed page,a rotation of the portable device may be used to zoom in or zoom out onthe displayed page, which may change the resolution of the displayedpage. For example, a user may tilt up the portable device as a way tozoom out and may tilt down the portable device as a way to zoom in.Other moving directions, such as those or a combination of those shownin FIG. 5A, may also be utilized.

According to another embodiment, the techniques described above may beused in a virtual reality environment. In one embodiment, it allows auser to use the accelerometer equipped portable display device as aportable and controllable window into a virtual reality image database.For example, a user holding the tablet can turn around and see the viewlooking backwards from a position in a two or three dimensional image orobject database as if the user walks into a virtual reality game space.According to another embodiment, a user may perform an inspection of animage panorama where the view in different directions is provided bymultiple cameras pointing outward in different directions from a singlelocation.

FIG. 8 is a flow diagram illustrating an exemplary process fornavigating an image based on an accelerometer, according to oneembodiment of the invention. Exemplary process 800 may be performed by aprocessing logic that may comprise hardware (circuitry, dedicated logic,etc.), software (such as is run on a dedicated machine), or acombination of both. In one embodiment, exemplary process 800 includes,but is not limited to, displaying a first portion of a document page ona display of the portable device prior to the movement, and displaying asecond portion of the document page different than the first portion onthe display of the portable device if the determined direction of themovement relatively matches the predetermined direction.

Referring to FIG. 8, at block 801, a first portion of an image (e.g., aportion of a map as shown in FIG. 7A) is displayed on a display of aportable device. The image may be a part of a panorama image, a virtualreality image database, a three dimensional image database, or anenvironment formed by multiple camera inputs, etc. At block 802, amovement of the portable device is detected using an accelerometerattached to the portable device. In response to the detection, at block803, a moving direction is calculated based on the movement data (e.g.,X, Y, and Z axis information) provided by the accelerometer. In oneembodiment, in response to the detection, the accelerometer signals theassociated controller and/or firmware with the movement data. Thecontroller and/or firmware may calculate the moving direction based onthe movement data. Alternatively, the calculation of the movingdirection may be performed by other components of the portable device,such as, for example, the motion software component 104 of FIG. 1 and/orthe operating system of the portable device. At block 804, a secondportion of the image is displayed based on the determined movingdirection. In one embodiment, multiple intermediate portions of theimage may be displayed that forms a transition from the first portion tothe second portion. The second portion is displayed as if the portabledevice is moving while the displayed image remains steady. Otheroperations may also be performed.

Gaming Applications Based on an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used in a gaming application, where the accelerometer may be used todetect a scene change during a video game running within a portabledevice.

FIGS. 9A and 9B are diagrams illustrating an exemplary gamingapplication based on an accelerometer, according to one embodiment ofthe invention. In this embodiment, as an example, a user is holding aportable device 900 as a steering wheel as if the user is driving avehicle facing a first scene 901. As the user moves (e.g., turning) theportable device towards to a direction, such as, for example, direction903, the displayed scene may be changed to a second scene 902 as shownin FIG. 9B.

According to one embodiment, when the user holding the portable device900 move according to the direction 903, the accelerometer attached tothe portable device detects such a movement. The accelerometer mayprovide movement data (e.g., X, Y, and Z axis information) to acontroller and/or firmware of the portable device. The associatedcontroller and/or firmware may calculate a moving direction based on themovement data provided by the accelerometer, using one or morepredetermined formulas. Thereafter, the controller and/or firmware maycommunicate the moving direction and/or moving distance or accelerationto the associated gaming application software that is currentlyproviding the game.

In response, the gaming application software may determine the secondscene of the game based on the moving direction, moving distance, and/ormoving acceleration provided by the controller and/or firmware. Thegaming application software then displays the second scene accordingly.As a result, the user does not have to press and/or click a button inorder to change a scene of the game. Note that the moving direction 903is shown for the illustration purposes only. Any other directions may beapplied.

In one embodiment, the second scene of the game may be displayed via atransition from the first scene. That is, multiple intermediate scenesbetween the first and second scenes may be sequentially displayed toform a transition from the first scene to the second scene. As a result,the second scene “comes into” the display of the portable devicegradually.

According to a further embodiment, certain movements may be detected asa way to accelerate and/or de-accelerate the driving vehicle. Forexample, the displayed scene may be changed to show an acceleration ofthe vehicle when the portable device is tilted up (e.g., similar tostepping on the gas). Similarly, the displayed scene may be changed toshow a de-acceleration of the vehicle when the portable device is tilteddown (e.g., similar to stepping on the brake).

In addition, an accelerometer may be used to detect whether a movementof the portable device exceeds certain thresholds. If so, one or morepredetermined user configurable actions may be performed. For example,during a driving game, when a user drives the vehicle off the road, awarning message may be communicated to the user for such an indication.

FIGS. 10A and 10B are diagrams illustrating an exemplary gamingapplication based on an accelerometer, according to another embodimentof the invention. In this embodiment, a user is holding a portabledevice having an accelerometer built-in therein as a steering wheel of avehicle. As shown in FIG. 10A, when a scene includes a road curved toleft, the user is required to turn the steering wheel to leftaccordingly in order to stay on the road. An accelerometer attached tothe portable device may be used to detect whether the portable device(e.g., the steering wheel) has been turned accordingly and whether theturning angle or distance is appropriate.

If it is detected that the turning of the portable device is not turnedor not turned enough, the associated gaming application software mayperform certain predetermined actions. For example, the gamingapplication may generate an alarm to the user, such as, for example, avibration of the portable device or an audio alert, etc. In addition, anoff-road scene may be displayed. If it is detected that the user doesnot respond to the changing of the road condition for a period of time,a crashed scene may be displayed accordingly.

According to certain embodiments, other moving directions may be used to“look up” and “look down” from a viewpoint of a user holding theportable device. For example, in a flying game, a user could hold aportable device as if the user is driving a flying object (e.g., anairplane), where an accelerometer may be used to detect the movement ofthe portable device in order to determine where the flying object isheading. For example, the flying object is going up when the portabledevice is tilted up and the flying object is going down when theportable device is tilted down. Other directions, such as, for example,those or a combination of those shown in FIG. 5A, may be utilized toenable the flying object to fly any directions.

Similarly, in a shooting game according to one embodiment, in additionto those movements described above, which may be used to look up, lookdown, and/or look around, a vertical movement of the portable deviceparallel to the display surface of the portable device may be used todetect whether a user is in a standup shooting position or in a hidingposition. For example, when the portable device is moved down, aprotection barrier may be displayed blocking the opponents to indicatethat a user holding the portable device as a shooting weapon is hidingbehind the protection barrier. When the portable device is moved up, theprotection barrier may be removed exposing the opponents to indicatethat the user is in a shooting position without protection. Other gamingconfigurations may exist.

FIG. 11 is a flow diagram illustrating an exemplary process for a gamingapplication based on an accelerometer, according to one embodiment ofthe invention. Exemplary process 1100 may be performed by a processinglogic that may comprise hardware (circuitry, dedicated logic, etc.),software (such as is run on a dedicated machine), or a combination ofboth. In one embodiment, exemplary process 1100 includes, but is notlimited to, displaying a sequence of images transitioning towards adirection from a first scene to a second scene from a viewpoint of auser, detecting whether the movement of the portable device is inaccordance with a direction associated with the direction of thetransition from the viewpoint of the user, and performing apredetermined operation if the movement is not detected in accordancewith a direction associated with the direction of the transition.

Referring to FIG. 11, at block 1101, a sequence of images transitioningfrom a first scene to a second scene (e.g., a driving game) is displayedon a display of a portable device. At block 1102, a movement of theportable device is detected using an accelerometer attached to theportable device. At block 1103, a moving direction of the portabledevice is determined based on movement data provided by theaccelerometer. In one embodiment, the moving direction is determined bya controller and/or firmware coupled to the accelerometer, similar tothe configuration shown in FIG. 1. In response to the determined movingdirection, at block 1104, one or more predetermined operations, such as,for example, causing vibration of the portable device, generating anaudio alert, or a combination of both, may be performed. Otheroperations may also be performed.

Activating/Deactivating Devices Based on an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used to detect a movement of a portable device and an orientation ofthe portable device may be determined based on the movement dataprovided by the accelerometer. Thereafter, one or more interfaces of theportable device may be activated or deactivated based on the determinedorientation after the movement.

FIGS. 12A and 12B are diagrams illustrating an exemplary mechanism foractivating/deactivating interfaces of a portable device based on anaccelerometer, according to one embodiment of the invention. In thisembodiment, as shown in configuration 1201 of FIG. 12A, multipleinterfaces 1204-1207 are disposed on multiple locations of the portabledevice. As an example, interfaces 1204-1207 are described herein aswireless interfaces, such as, for example, antennas or wirelesstransceivers. It will be appreciated that other interfaces may also beapplied.

Referring to FIG. 12A, initially for a given orientation 1201, document1203 is displayed. According to one embodiment, when a user holds up theportable device in orientation 1201, an accelerometer attached to theportable device may detect such a movement and orientation 1201 isdetermined by the associated controller and/or firmware coupled to theaccelerometer similar to those shown in FIG. 1. In view of thedetermined orientation, it may be determined that wireless interfaces1204 and 1205 are in the best positions to transmit and/or receivewireless signals given the orientation 1201 (e.g., receiving and/ortransmitting strongest signals), while the wireless interfaces 1206-1207are in relatively weak positions. As a result, wireless interfaces1204-1205 may be activated and wireless interfaces 1206-1207 may beoptionally de-activated.

When the portable device is moved, for example, rotated according to thedirection 1208 for 90 degrees, the portable device may end up withdifferent orientation 1202 as shown in FIG. 12B. An accelerometerattached to the portable device may detect such a movement andcommunicate the movement data to other components of the portable deviceas described above. In addition to maintaining an orientation of adocument page being displayed relatively identical to the one prior tothe movement as described above with respect to FIGS. 3A and 3B, thewireless interfaces 1204-1207 may be reevaluated whether the existingconfiguration is still the best configuration for the orientation afterthe movement.

In this embodiment, it is assumed that the wireless interfaces of thetop and bottom positions of the portable device are considered at thebest positions. After the movement (e.g., turn left with 90 degrees),the original wireless interfaces 1204-1205 that were in the bestpositions may not be in the best positions any more. Rather, thewireless interfaces 1206-1207 that were not in the best positions nowmay be in the best positions. As a result, in response to the detectionof the movement and the determination of the orientation after themovement, wireless interfaces 1206 and 1207 may be activated as shown inbold, since they are in the best positions. Similarly, the wirelessinterfaces 1204-1205 may be deactivated since they are no longer in thebest positions.

Furthermore, in addition to detect whether the portable device is moved,it is also determined whether the portable device is picked up or heldby a user based on the movement data provided by the accelerometer. Inone embodiment, such a determination may be performed by a controllerand/or firmware coupled to the accelerometer similar to theconfiguration shown in FIG. 1. If it is determined that the portabledevice is held by a user, it may be further determined or predicted thelocation of the user's hands 1208-1209 holding the portable device.

For example, in the orientation 1201 as shown in FIG. 12A, afterpredicting the locations of the user's hands, one or more wirelessinterfaces, such as wireless interfaces 1207 and 1208, that may becovered by the hands 1208-1209 may be deactivated. Similarly, in theorientation 1202 after the movement as shown in FIG. 12B, wirelessinterfaces 1204 and 1205 may be deactivated since it is predicted thatthey are covered by the user's hands.

FIG. 13 is a flow diagram illustrating an exemplary process foroperating interfaces of a portable device based on an accelerometer,according to one embodiment of the invention. Exemplary process 1300 maybe performed by a processing logic that may comprise hardware(circuitry, dedicated logic, etc.), software (such as is run on adedicated machine), or a combination of both. In one embodiment,exemplary process 1300 includes, but is not limited to, detecting amovement of a portable device using an accelerometer attached to theportable device, determining an orientation of the portable device afterthe movement based on movement data provided by the accelerometer, andactivating at least one interface of the portable device that is bestsuitable for given the determined orientation.

Referring to FIG. 13, at block 1301, a movement of a portable device isdetected using an accelerometer attached to the portable device, wherethe portable device includes multiple interfaces (e.g., wirelessinterfaces) disposed on multiple locations. At block 1302, anorientation of the portable device after the movement is determinedbased on movement data provided by the accelerometer. At block 1303,optionally, it is determined whether the portable device is picked up orheld by a user based on the movement data provided by the accelerometer.If so, it is predicted the location of the user's hands holding theportable device. At block 1304, one or more interfaces may be activatedor deactivated based on the determined orientation. Optionally, some ofthe interfaces that are covered by the predicted user's hands may bedeactivated while activating those that are not covered. Otheroperations may also be performed.

According to one embodiment, the above described techniques may also beapplied to multimedia interfaces of the portable device. FIGS. 14A and14B are diagrams illustrating an exemplary mechanism foractivating/deactivating multimedia interfaces of a portable device usingan accelerometer, according to one embodiment of the invention. In thisembodiment, as an example, one or more speakers are used as multimediainterfaces of the portable devices. Referring to FIG. 14A, a portabledevice includes multiple speakers 1405-1408 disposed on differentlocations of the portable device and a document page 1403 is optionallydisplayed on a display of the portable device. In the orientation 1401prior to a movement, an audio driver may be configured to generateproper 3D surround sound considering speakers 1405-1406 on the left andspeakers 1407-1408 on the right. When the portable device is moved, forexample, according to the moving direction 1404 for 90 degrees, a secondorientation 1402 is detected and determined by an accelerometer and itsassociated controller and/or firmware as shown in FIG. 14B.

In response to the detection, in addition to maintaining an orientationof a document page 1403 being displayed relatively identical to the oneprior to the movement as described above with respect to FIGS. 3A and3B, the positions of the speakers 1405-1408 may be reevaluated whetherthe existing configuration is still the best configuration for theorientation after the movement. In this example, originally leftspeakers 1405 and 1406 are at the bottom while originally right speakers1407 and 1408 are on the top as shown in FIG. 14B. Thus, the existingaudio conditions have changed and the sound effects are not longer inthe best state. As a result, the audio driver may be reconfigured toproduce an audio quality relatively equivalent to the one prior to themovement of the portable device. For example, speakers 1405 and 1407 maybe used as speakers on the left while speakers 1406 and 1408 may be usedas speakers on the right, in order to produce proper sound effects.Other configurations may also exist.

FIG. 15 is a flow diagram illustrating an exemplary process forreconfiguring multimedia interfaces based on an accelerometer, accordingto one embodiment of the invention. Exemplary process 1500 may beperformed by a processing logic that may comprise hardware (circuitry,dedicated logic, etc.), software (such as is run on a dedicatedmachine), or a combination of both. Referring to FIG. 15, at block 1501,a movement of a portable device is detected using an accelerometerattached to the portable device, where the portable device includesmultiple multimedia interfaces or devices disposed on differentlocations. At block 1502, an orientation of the portable device afterthe movement is determined based on the movement data provided by theaccelerometer. At block 1503, one or more multimedia interfaces may beoptionally activated or deactivated based on the determined orientation.At block 1504, one or more multimedia devices are driven to produce bestresults given the determined orientation after the movement. Otheroperations may also be performed.

Although wireless interfaces and audio interfaces are used as an exampleherein, it is not so limited. Other types of interfaces, such as, forexample, a video interface, a microphone, and a camera, may also beapplied.

According to certain embodiments of the invention, some devices may onlybe properly used when the machine is in a certain orientation or adifferent orientation than it is normally used. Media insertion, forexample, may require the device to be placed on its side or upside downto provide access. Ejecting media may require the device to be placed onits side or upside down to prevent the media from being blocked orfalling to the floor.

For example, according to one embodiment, a user may initiate anejection of a media from a media device or component (e.g., a CD from aCD ROM device) by pressing a button or other controls. The deviceprepares to eject the media or to unmount a disk, etc. Meanwhile, acontrol module or application software controlling the device may detectthat the portable device is not in a position suitable for ejecting themedia using an accelerometer attached to the device. As a result, thedevice may wait for the unit to be positioned in a proper position ororientation by periodically or constantly reading acceleration data fromthe accelerometer. The application software associated with the devicemay further notify a user of the device (e.g., pop up a message or anaudio alarm, etc.) that the device needs to be certain positions inorder to complete the user's request. Once the device is in a properorientation, the requested operations may be performed (e.g., ejectingthe media).

Similarly, according to another embodiment, an accelerometer can be usedto abort an operation if the user doesn't reorient the unit. If thedevice is not repositioned into a proper or predetermined positionwithin a time period, the device can cancel the requested operations orprovide the user with further instructions. According to a furtherembodiment, an accelerometer may be used to detect the orientation or inorder to enable and/or disable input devices mounted on the sides orbottom of the device. For example, there could be an eject button on thebottom of the device that is disabled when the device is upright. Thisway, the button is not activated by the user placing the device on adesk or in their lap.

FIG. 24 is a flow diagram illustrating an exemplary process foractivating or deactivating a device according to another embodiment ofthe invention. Exemplary process may be performed by a processing logicthat may comprise hardware (circuitry, dedicated logic, etc.), software(such as is run on a dedicated machine), or a combination of both.Referring to FIG. 24, at block 2401, a request for transitioning acomponent of a portable device from a first operating state into asecond operating state is received (e.g., ejecting a portable storagedevice). At block 2402, it is determined whether the portable device ispositioned according to a predetermined orientation suitable for thesecond operating state, using an accelerometer attached to the portabledevice.

At block 2403, if it is determined that the portable device ispositioned according to the predetermined orientation or position basedon the acceleration information provided by the accelerometer, thecomponent of the portable device is then transitioned from the firstoperating state into the second operating state (e.g., opening a tray ofa CD ROM). However, if the portable device is not in the predeterminedposition or orientation, at block 2404, the requested transition isrejected or suspended, leaving the component of the portable deviceremained in the first operating state or other states (e.g., atri-state, etc.) Meanwhile, the position or orientation of the portabledevice is periodically or constantly monitored using the accelerometer,where the requested operations may be resumed once the position ororientation of the portable device is detected to be in a properposition or orientation. The requested operations may be aborted if theportable device is not in a proper position or orientation for apredetermined period of time. Optionally, at block 2405, a notificationmay be generated to notify the user of the portable device to put theportable device in certain positions in order to complete the requestedoperations. Other operations may also be performed.

Other Applications Based on an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used to detect and determine activities of a user with a portabledevice having the accelerometer attached therein. According to oneembodiment, for example, an accelerometer attached to a portable device,which may be held by a user, may detect that the user is joggling whileholding the portable device. In this example, the portable device may bedigital multimedia player (e.g., an MP3 player). The accelerometerattached to the portable device may detect that the movements of theportable device caused by the user's activities may be repetitive.

In response to the detection, a repetitive rate of the movements of theportable device may be determined, for example, by a controller and/orfirmware coupled to the accelerometer, similar to the configurationshown in FIG. 1. Once the repetitive rate of the movement is determined,an application software (e.g., a Windows media player from Microsoft ora real player from Real Networks) may adjust a rhythm of multimediacontents currently being played by the portable device may be adjustedto relatively match the determined repetitive rate of the movements. Asa result, for example, the tempo of a music currently played by an MP3player may be adjusted to relatively match the joggling rate of the userholding the MP3 player.

Furthermore, according to a further embodiment, an application softwaremay further select and play a multimedia content that is best suitablefor the determined user's activities (e.g., joggling rate). In oneembodiment, a user may configure a multimedia player via a userinterface that under certain circumstances, certain types of multimediacontents may be selected and played. As a result, when the accelerometerand its associated controller and/or firmware detects that a user isperforming certain types of activities, an associated type of multimediacontents may be selected and played accordingly.

FIG. 16 is a flow diagram illustrating an exemplary process for playingmultimedia contents based on an accelerometer, according to oneembodiment of the invention. Exemplary process 1600 may be performed bya processing logic that may comprise hardware (circuitry, dedicatedlogic, etc.), software (such as is run on a dedicated machine), or acombination of both. Referring to FIG. 16, at block 1601, a movement ofa portable device is detected using an accelerometer attached to theportable device, where the movement of the portable device is repeatedfor every certain period of time. At block 1602, the repetitive rate ofthe movements of the portable device is determined based on the movementdata provided by the accelerometer. At block 1603, a digital multimediacontent having a rhythm relatively matched with the determinedrepetitive rate is optionally selected and played. At block 1604, arhythm of the multimedia content currently played is adjusted torelatively match the determined repetitive rate of the movements. Otheroperations may also be performed.

According to another embodiment of the invention, an accelerometer maybe used to determine whether a portable device is moving (e.g., carriedby a user) and the portable device should be put in a proper operatingstate. According to one embodiment, when a portable device is in aninactive state and the portable device is moving, which is detected viaan accelerometer attached to the portable device, the portable devicemay be put in a relatively low power mode, such as, for example, a sleepmode. For example, a laptop computer having its lid closed may beconsidered being in an inactive state. Since the lid of the laptopcomputer is closed, the user may not actively operate the laptopcomputer. Alternatively, a laptop computer is considered in the inactivestate when its desktop is locked. Other situations may also beconsidered as inactive states, which may be user configurable. As aresult, the laptop computer may be put into a low power mode. Inaddition, if the laptop is determined as moving (via the accelerometer),it may be unsafe to write any data to a permanent storage device (e.g.,a hard drive). Thus, a read/write head of the permanent storage devicemay be parked to a safe place without writing the data to the permanentstorage device.

According to one embodiment, if the portable device is determined beingin an inactive state and the portable device is not moving based on thedata provided by an accelerometer attached to the portable device, theportable device may be put into a hibernated mode, where the content ofthe system memory may be swapped into a permanent storage device (e.g.,a hard drive). Since the portable device is not moving, it is relativelysafe to write data to the permanent storage device.

FIG. 17 is a flow diagram illustrating an exemplary process for powermanagement of a portable device according to one embodiment of theinvention. Exemplary process 1700 may be performed by a processing logicthat may comprise hardware (circuitry, dedicated logic, etc.), software(such as is run on a dedicated machine), or a combination of both.Referring to FIG. 17, at block 1701, a portable device is determinedwhether the portable device is in an inactive state. For example, whenthe lid of the portable device is closed or its desktop is locked, theportable device is considered being in an inactive state. At block 1702,the portable device is detected whether the portable device is moving(e.g., whether the portable device is carried by a user) using anaccelerometer attached to the portable device. At block 1703, theportable device is put into a relatively low power mode without swappingthe content of the system memory into a permanent storage device, if theportable device is moving. Otherwise, at block 1704, the portable deviceis put into a hibernated mode by swapping the content of the systemmemory into the permanent storage device, if the portable device ismoving. Other operations may also be performed.

According to another embodiment of the invention, an accelerometer maybe used to detect whether a portable device is moved according tocertain directions, in order to determine whether a password is enteredcorrectly. In one embodiment, when a user of a portable device isprompted to enter a password, the user has to move the portable deviceto one or more directions as a part of entering the password. Anaccelerometer attached to the portable device may detect suchmovement(s) and a moving direction may be determined, for example, bythe associated controller and/or the firmware. If the moving directionrelatively matches a predetermined direction, it is considered that thepassword has been “entered” correctly.

According to an alternatively embodiment, a user may be required toenter a first portion of the password on a portable device. Then theuser is required to move the portable device according to certaindirections. Thereafter, the user is required to enter a second portionof the password (e.g., the rest of the password). Thus, a combination ofthe password entered and certain movements of portable deviceconstitutes a complete password. Other configurations may exist.

FIG. 18 is a flow diagram illustrating an exemplary process forprocessing password according to one embodiment of the invention.Exemplary process 1800 may be performed by a processing logic that maycomprise hardware (circuitry, dedicated logic, etc.), software (such asis run on a dedicated machine), or a combination of both. Referring toFIG. 18, at block 1801, a user is requested to enter a password on aportable device. At block 1802, it is detected whether the portabledevice is moved using an accelerometer attached to the portable device.At block 1803, a moving direction is determined based on the movementdata provided by the accelerometer. At block 1804, it is determinedwhether the portable device has been moved according to a predetermineddirection. At block 1805, an indication is issued indicating whether thepassword is “entered” correctly based on whether the moving directionrelatively matches the predetermined direction. Other operations mayalso be performed.

According to another embodiment of the invention, an accelerometer maybe used to detect and record a sequence of movements of a portabledevice, where the recorded movement data may be used to recreate themoving history subsequently (e.g., off line). In one embodiment, when aportable device is moved for a period of time, an accelerometer attachedto the portable device detects and records such movements. The movementdata recorded by the accelerometer may be stored in a storage device(e.g., a hard drive) of the portable device during the movements.Alternatively, the movement data may be transmitted to a remote facilityover a network (e.g., a wireless network) during the movements.Subsequently, after the movements, a trail representing the movementsover the period of time may be recreated using the movement dataprovided by the accelerometer.

This is typically useful when a user wishes to replot a trail of aroller coaster ride afterwards. For example, a user may carry theportable device having an accelerometer attached therein and go onto aroller coaster ride. During the ride, the accelerometer may detect andstore the movement data into a storage device, or alternatively,transmit the movement data to a remote facility over a network. Afterthe ride, the movement data may be used to recreate a plot of the rollercoaster ride. The roller coaster ride is used as an example only, thetechniques described above may be applied to other situations. Forexample, a user who carrying an accelerometer, either attached to aportable device or attached to a vehicle, may drive a vehicle todifferent locations to perform a survey, in order to create a map forthose locations. The map may be subsequently created using the movementdata collected by the accelerometer during the drive.

FIG. 19 is flow diagram illustrating an exemplary process for recreatinga trail of movements using an accelerometer, according to one embodimentof the invention. Exemplary process 1900 may be performed by aprocessing logic that may comprise hardware (circuitry, dedicated logic,etc.), software (such as is run on a dedicated machine), or acombination of both. Referring to FIG. 19, at block 1901, a sequence ofmovements of a portable device is detected using an accelerometerattached to the portable device. In the above example, a vehicle may beconsidered as a portable device herein. At block 1902, a movingdirection of each of the sequential movements and the time between eachmovement are determined. At block 1903, the information may be stored ina storage device of the portable device. Alternatively, the informationmay be dynamically transmitted to a remote facility over a network(e.g., a wireless network). Subsequently, at block 1904, a trailrepresenting the movement history may be recreated using the storedmovement data. Other operations may also be performed.

Motion Compensation Using an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used to detect a movement of a portable device and motioncompensation may be applied in response to the detection. For example,an accelerometer attached to a portable device may detect that a userusing the portable device (e.g., reading an electronic documentdisplayed on a display of the portable device) may be riding on abouncing vehicle. In response to the detection, motion compensation maybe performed for the displayed document such that the electronicdocument may remain relatively the same position with respect to eyes ofthe user.

In one embodiment, position of the display platform as a function oftime in the plane of the display may be calculated by appropriatelyintegrating the signals received from the accelerometer. The image isthen translated vertically and horizontally on the display as a functionof time to keep the image position substantially fixed in spaceindependent of the motion of the display in the plane of the display.Such movements (e.g., sudden movement such as bounce) may be representedvia relatively high frequency component of the moving data provided bythe accelerometer. Low frequency components of the display motion, suchas those caused by the forward velocity of the vehicle may not becompensated in order to prevent the image from drifting off the screenwhen the vehicle goes up and down hills or around curves. Similarly,such techniques may also be applied to electronic games played by aportable device while riding on a bouncing platform.

FIG. 22 is a flow diagram illustrating an exemplary process for motioncompensation using an accelerometer, according to one embodiment of theinvention. Exemplary process may be performed by a processing logic thatmay comprise hardware (circuitry, dedicated logic, etc.), software (suchas is run on a dedicated machine), or a combination of both. In oneembodiment, the exemplary process includes, but is not limited to,detecting a movement of a portable device using an accelerometerattached to the portable device, determining a moving direction of theportable device based on movement data provided by the accelerometer,and adjusting a position of a displayed object on a display of theportable device to compensate the movement of the portable device, suchthat the adjusted displayed object remain relatively identical positionwith respect to a user of the portable device.

Referring to FIG. 22, at block 2201, a movement of a portable device isdetected using an accelerometer attached to the portable device. In oneembodiment, the movement is detected as a function of time from alocation as a part of moving data provided by the accelerometer. Themoving data may include relatively high frequency componentsrepresenting sudden movements and relatively low frequency componentrepresenting slow movements. At block 2202, the relatively highfrequency components of the moving data are extracted in a plane of thedisplay (e.g., the components of the motion which degrade human visualacuity for reading of a displayed document or inspecting a still image,etc.) At block 2203, the position of the displayed document or image maybe shifted based on the extracted high frequency components tocompensate for the high frequency motion (e.g., sudden moves) of theportable device. As a result, the displayed document or image may bemaintained relatively stable in space with respect to the user. Otheroperations may also be performed.

Impulse Detection and Applications Using an Accelerometer

According to another embodiment of the invention, an accelerometer maybe used to detect impulses given by a user of a portable device. In oneembodiment, the techniques allow the user to give impulses, in aphysical sense of giving a controlled momentum transfer, as inputs to aportable or fixed device for use by an application program. For example,these impulses can appear to initiate or deflect motion of objects onthe display in proportion to the magnitude and direction of the impulse.This will enable games (e.g., billiards and other ball games) andeducational/engineering explorations (e.g., response of a structure to atap).

For example, a user may “toss” a cursor across a display of a portabledevice by tapping on the side of the portable device. The accelerometerattached to the portable device may detect such a force that causes amovement of the portable device. A direction and magnitude of the forcemay be determined based on the movement data provided by theaccelerometer. When this function is enabled for an application, a tapon the side of the device will cause the cursor to move in a fashionanalogous to tapping a small object and causing it to slide somedistance across a surface. Similarly, such a technique may be utilizedin a variety other applications, such as, for example, video games(e.g., golf, bowling, tennis, etc.)

FIG. 23 is a flow diagram illustrating an exemplary process for impulsedetection according to one embodiment of the invention. Exemplaryprocess may be performed by a processing logic that may comprisehardware (circuitry, dedicated logic, etc.), software (such as is run ona dedicated machine), or a combination of both. In one embodiment,exemplary process includes, but is not limited to, detecting a movementof a portable device using an accelerometer attached to the portabledevice, in response to a force applied to the portable device,calculating a magnitude and a direction of the force based onacceleration information provided by the accelerometer, and moving adisplayed object from a first location to a second location on a displayof the portable device, wherein the direction and distance between thefirst and second locations are determined based on the calculatedmagnitude and direction of the force.

Referring to FIG. 23, at block 2301, an accelerometer attached to aportable device detects three-axis acceleration as a function of time inresponse to a tap on the portable device (e.g., a user taps an edge ofthe portable device with a hand). At block 2302, a value is calculatedproportional to a magnitude of the impulse delivered to the device byperforming the time integration of the components of the three-axisacceleration. In one embodiment, the value may be determined based onthe integration of the absolute value of the resultant accelerationvector, for example, determined by vector addition of the threecomponents of the acceleration (e.g., X, Y, and Z, axis accelerationinformation).

At block 2303, a direction of the impulse delivered to the portabledevice as a result of tapping the portable device is determined. In oneembodiment, the direction is calculated by a microcontroller and/orfirmware coupled to the accelerometer based on the moving data providedby the accelerometer. In response to the determined impulse directionand magnitude, the application software causes a displayed object tomove in a distance with a direction relatively associated with thedetermined direction and magnitude of the impulse. A displayed objectmay be a cursor. Alternatively, the displayed object may be a ball as inbilliards or pinball, a bowling ball in a bowling game, a racquet orpaddle as in tennis, a structure to observe deformation, and/or kineticmotion, etc. The above techniques may also be applied to other similartypes of applications apparent to those with ordinary skill in the art.

Exemplary Portable Device Having an Accelerometer

FIG. 20 is a block diagram illustrating an exemplary portable devicehaving an accelerometer according to one embodiment of the invention.For example, exemplary system 2000 may represent at least a portion(e.g., a subsystem) of the exemplary system 100 shown in FIG. 1 orexemplary system 2100 of FIG. 21. Referring to FIG. 20, exemplary system2000 includes one or more accelerometers 2001, one or moremicrocontrollers 2002, a host chipset 2003 that may be coupled to avideo adapter 2004 and an audio device 2005, and one or more peripheraldevices 2006.

In one embodiment, the accelerometer 2001 is a 3-axis accelerometer,which may provide acceleration data on X, Y, and Z axes. Theaccelerometer is an electromechanical micro machine encapsulated in achip package. It presents three analog outputs (e.g., X, Y, and Z axes)whose values are directly proportional to the acceleration beingmeasured along corresponding axes in 3-space. In one embodiment, theaccelerometer 2001 may be a KGF01 accelerometer from Kionix or anADXL311 accelerometer from Analog Devices.

The microcontroller 2002 is responsible for monitoring the analogoutputs of the accelerometer 2001 and communicating with the host viathe chipset 2003. In one embodiment, the microcontroller 2002 is coupledto the host chipset 2003 via an I2C bus 2007 and an interrupt line 2008.Alternatively, the microcontroller 2002 may be integrated with the hostchipset 2003. In one embodiment, the microcontroller 2002 may be a PCI16F818 microcontroller from Microchip.

According to one embodiment, when the accelerometer 2001 detects thatthe portable device is moving, the microcontroller 2002 receives the3-axis acceleration information from the accelerometer 2001 and notifiesthe host via the interrupt line 2008. In response, the movement data maybe read out from the microcontroller 2002 via the I2C bus 2007. In oneembodiment, the microcontroller 2002 may determine a moving directionbased on the 3-axis acceleration information received from theaccelerometer 2001. Alternatively, the host chipset may perform suchoperations. In one embodiment, the magnitude of the resultantacceleration vector of all three axes may be determined according to thefollowing formula:

Mag(Acceleration_(resultant))=Sqrt(X _(accel) ² +Y _(accel) ² +Z_(accel) ²)

In response to the determined magnitude of the acceleration vector, oneor more software components (e.g., application software, firmware, andoperating system, etc.) executed within the exemplary system 2000 mayperform certain operations, for example, those described abovethroughout the present application. For example, an orientation of adisplayed image may be adjusted via the video adapter and the soundeffects may be adjusted via audio device 2005, etc. Furthermore, one ormore peripheral devices 2006, such as, for example, hard drives, may beconfigured accordingly. Other configurations may exist.

Exemplary Data Processing System

FIG. 21 is a block diagram of a digital processing system which may beused with one embodiment of the invention. For example, the system 2100shown in FIG. 21 may be used as the exemplary systems shown in FIGS. 1and 20.

Note, that while FIG. 21 illustrates various components of a computersystem, it is not intended to represent any particular architecture ormanner of interconnecting the components, as such details are notgermane to the present invention. It will also be appreciated thatnetwork computers, handheld computers, cell phones, multimedia players,and other data processing systems which have fewer components or perhapsmore components may also be used with the present invention. Thecomputer system of FIG. 21 may, for example, be an Apple Macintoshcomputer or an IBM compatible PC.

As shown in FIG. 21, the computer system 2100, which is a form of a dataprocessing system, includes a bus 2102 which is coupled to amicroprocessor 2103 and a ROM 2107, a volatile RAM 2105, and anon-volatile memory 2106. The microprocessor 2103, which may be, forexample, a PowerPC G4 or PowerPC G5 microprocessor from Motorola, Inc.or IBM, is coupled to cache memory 2104 as shown in the example of FIG.21. The bus 2102 interconnects these various components together andalso interconnects these components 2103, 2107, 2105, and 2106 to adisplay controller and display device 2108, as well as to input/output(I/O) devices 2110, which may be mice, keyboards, modems, networkinterfaces, printers, and other devices which are well-known in the art.Typically, the input/output devices 2110 are coupled to the systemthrough input/output controllers 2109. The volatile RAM 2105 istypically implemented as dynamic RAM (DRAM) which requires powercontinuously in order to refresh or maintain the data in the memory. Thenon-volatile memory 2106 is typically a magnetic hard drive, a magneticoptical drive, an optical drive, or a DVD RAM or other type of memorysystem which maintains data even after power is removed from the system.Typically, the non-volatile memory will also be a random access memory,although this is not required. While FIG. 21 shows that the non-volatilememory is a local device coupled directly to the rest of the componentsin the data processing system, it will be appreciated that the presentinvention may utilize a non-volatile memory which is remote from thesystem, such as a network storage device which is coupled to the dataprocessing system through a network interface such as a modem orEthernet interface. The bus 2102 may include one or more buses connectedto each other through various bridges, controllers, and/or adapters, asis well-known in the art. In one embodiment, the I/O controller 2109includes a USB (Universal Serial Bus) adapter for controlling USBperipherals. Alternatively, I/O controller 2109 may include an IEEE-1394adapter, also known as FireWire adapter, for controlling FireWiredevices. Other components may be included.

Thus, methods and apparatuses for operating a portable device using anaccelerometer have been described. In the foregoing specification, theinvention has been described with reference to specific exemplaryembodiments thereof. It will be evident that various modifications maybe made thereto without departing from the broader spirit and scope ofthe invention as set forth in the following claims. The specificationand drawings are, accordingly, to be regarded in an illustrative senserather than a restrictive sense.

1-38. (canceled)
 39. A method of operating a portable device, the methodcomprising: displaying a first page of a document on a display;detecting movement of the portable device using an accelerometerattached to the portable device; determining a direction of the movementbased on movement data provided by the accelerometer; and displaying asecond page of the document on the display based on the determineddirection of the movement, wherein the second pane of the document isdifferent from the first page of the document.
 40. The method as inclaim 39, wherein the document comprises a text document produced by aword processing application.
 41. The method as in claim 39, wherein thesecond page comprises a next page of the document.
 42. The method as inclaim 39, wherein the second page comprises a previous page of thedocument.
 43. The method as in claim 39, further comprising: prior todisplaying a second page of the document on the display, comparing thedetermined direction of the movement with a predetermined direction todetermine whether the determined direction matches the predetermineddirection; and displaying the second page of the document on the displayonly when the determined direction of the movement matches thepredetermined direction.
 44. The method as in claim 43, wherein thepredetermined direction is user configurable using a user interface. 45.The method as in claim 43, wherein the predetermined direction isassociated with a user-configured profile that associates thepredetermined direction of the portable device with a given time of day.46. The method as in claim 39, wherein the document comprises a web sitepresented by a browser and the first and second pages each comprise webpages on the web site.
 47. The method as in claim 39, wherein thedocument comprises a slide presentation produced by a presentationapplication.
 48. The method as in claim 39, wherein the movement of theportable device comprises movement that is parallel with a surface ofthe portable device.
 49. The method as in claim 39, wherein the movementof the portable device comprises a rotation of the portable device aboutan axis that is parallel with an edge of the portable device.
 50. Themethod as in claim 39, wherein the movement of the portable devicecomprises movement responsive to an oscillation of a surface supportingthe portable device.
 51. A portable device for presenting a document,comprising: a display; an accelerometer; a memory having instructionsstored therein; and a processor coupled to the accelerometer, thememory, and the display, wherein the processor executes instructionsfrom the memory to: display a first page of the document on the display;detect whether the portable device is moving using the accelerometer;determine a direction of the movement based on movement data receivedfrom the accelerometer; and display a second page of the document on thedisplay based on the determined direction of the movement, wherein thesecond page of the document is different from the first page of thedocument.
 52. The portable device as in claim 51, wherein the processorfurther executes instructions from the memory to: compare the determineddirection of the movement with a predetermined direction to determinewhether the determined direction matches the predetermined directionprior to displaying the second page of the document on the display; anddisplay the second page of the document on the display only when thedetermined direction of the movement matches the predetermineddirection.
 53. The portable device as in claim 52, wherein thepredetermined direction is associated with a user-configured profilethat associates the predetermined direction of the portable device witha given time of day.
 54. The portable device as in claim 51, wherein thedocument comprises at least one of a word document produced by a wordprocessing application, a slide presentation produced by a presentationapplication, or a web site presented by a browser and the first andsecond pages each comprise web pages on the web site.
 55. The portabledevice as in claim 51, wherein the second page comprises a next page ofthe document.
 56. The portable device as in claim 51, wherein the secondpage comprises a previous page of the document.
 57. The portable deviceas in claim 51, wherein the movement of the portable device comprisesone of: a movement that is parallel with a surface of the portabledevice; a rotation of the portable device about an axis that is parallelwith an edge of the portable device; or movement that is responsive toan oscillation of a surface supporting the portable device.
 58. A methodfor operating a portable device placed on a supporting surface, themethod comprising: displaying a first image on a display of a portabledevice; detecting movement in response to an oscillation of thesupporting surface using the accelerometer attached to the portabledevice; and displaying a second image on the display based on thedetermined direction of the movement, wherein the second image isdifferent from the first image.